package com.uzai.console.service.user;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.user.usertype.*;
import com.uzai.console.dto.user.usertypegroup.UserTypeGroupIdDto;
import com.uzai.console.dto.user.usertypegroup.UserTypeGroupInfoDto;
import com.uzai.console.dto.user.usertypegroup.UserTypeGroupQuery;
import com.uzai.console.vo.user.usertype.UserTypeInfoVo;
import com.uzai.console.vo.user.usertypegroup.UserTypeGroupInfoVo;

import java.util.List;

/***
 * @author liuqi
 * @date 2021年09月01日 19:26
 */
public interface UserTypeService {
    /**
     * 分页查询会员类型列表
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeQuery
     * @return null
     */
    Page<UserTypeInfoVo> findUserTypeList(UserTypeQuery userTypeQuery);

    /**
     * 查询会员类型详情
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeIdDto
     * @return null
     */
    UserTypeInfoVo findUserTypeInfo(UserTypeIdDto userTypeIdDto);

    /**
     * 修改跨身份升级
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeUpdateUpIdentityDto
     * @return null
     */
    void updateUpIdentity(UserTypeUpdateUpIdentityDto userTypeUpdateUpIdentityDto);

    /**
     * 修改是否默认
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeUpdateIsDefaultDto
     * @return null
     */
    void updateIsDefault(UserTypeUpdateIsDefaultDto userTypeUpdateIsDefaultDto);

    /**
     * 添加会员类型
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeInfoDto
     * @return null
     */
    void addUserType(UserTypeInfoDto userTypeInfoDto);

    /**
     * 修改会员类型
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeInfoDto
     * @return null
     */
    void updateUserType(UserTypeInfoDto userTypeInfoDto);

    /**
     * 删除会员类型
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeIdDto
     * @return null
     */
    void deleteUserType(UserTypeIdDto userTypeIdDto);

    /**
     * 分页查询会员类型分组列表
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeGroupQuery
     * @return null
     */
    Page<UserTypeGroupInfoVo> findUserTypeGroupList(UserTypeGroupQuery userTypeGroupQuery);

    /**
     * 添加会员类型分组
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeGroupInfoDto
     * @return null
     */
    void addUserTypeGroup(UserTypeGroupInfoDto userTypeGroupInfoDto);

    /**
     * 删除会员类型分组
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeGroupIdDto
     * @return null
     */
    void deleteUserTypeGroup(UserTypeGroupIdDto userTypeGroupIdDto);

    /**
     * 修改会员类型分组
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeGroupInfoDto
     * @return null
     */
    void updateUserTypeGroup(UserTypeGroupInfoDto userTypeGroupInfoDto);

    /**
     * 查询所有会员类型列表
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTypeQuery
     * @return null
     */
    List<UserTypeInfoVo> findUserTypeListSelect(UserTypeQuery userTypeQuery);

}
